名称:TCP发送
符号:TCP_SEND
说明:
服务器与客户端之间成功建立连接后,本机使用TCP_Send指令将缓存中的数据按照指定的长度发送给远程主机。数据大小(LENGTH)参数必须小于或等于数据缓存(DATA参数)的实际大小,否则存在数据访问越界的风险。
图片:
参数:
| 参数名称 | 数据类型 | IN/OUT | 参数作用 | 说明 |
|---|---|---|---|---|
| EXECUTE | BOOL | IN | 功能块触发 | 上升沿执行 |
| SOCKFD | DINT | IN | 套接字 | 服务器或客户端套接字 |
| DATA | REF_TO BYTE | IN | 数据首地址 | 待发送数据块首地址(不可为空/NULL) |
| LENGTH | WORD | IN | 数据长度 | 数据长度:1-1400,不可超过DATA实际大小 |
| BUSY | BOOL | OUT | 执行中 | TRUE:执行中 |
| DONE | BOOL | OUT | 成功标志 | TRUE:执行完成 |
| ERROR | BOOL | OUT | 出错标志 | TRUE:执行出错 |
| ERRORID | WORD | OUT | 错误码 | 0:正常;其它:错误码值 |
错误码:
| 错误码 | 说明 |
|---|---|
| 0 | 无错误 |
| 4002H | 套接字号不是允许的范围 |
| 4004H | 套接字没有连接 |
| 400DH | 发送数据过长 |
示例:
LD:
ST:
解释:
当“ExecuteSend1”操作数的信号状态从“0”变为“1”时,执行该指令,把"DataSend_Client1"数组里的"10"个字节数发送出去。每检测到一个信号上升沿,就执行一次发送。
当正在执行发送的时候,“ISBUSY_Client1”输出的信号状态就为“1”,成功执行完毕之后,“DONE_Client1”输出的信号状态就为“1”,当执行有错误的时候,输出“ISERROR_Client1”的信号状态为“1”,且“ERRORID_Client1”输出具体的错误码。